package pw.hais.config;

import java.io.File;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import pw.hais.uitl.ELog;

/**
 * Web配置
 * @author Hello_海生
 * @date 2014年7月24日
 */
@SuppressWarnings("rawtypes")
public class Config {
	public static String DB_HOST = "127.0.0.1";				//数据库:端口
	public static String DB_NAME;				//数据库名
	public static String DB_USERNAME;		//数据库账号
	public static String DB_PASSWORD;		//数据库密码
	public static String DES_KEY = "Easy";			//数据库密码
	public static boolean AutoCreateTable = true;		//是否自动建表
	public static String ENTITY_PATH;		//实体类 路径
	public static String CONTROLLER_PATH;	//控制器路径
	public static boolean DEBUG = true;			//是否开启调试模式
	public static int URLROUTE = 2;				//URL路由的请求方式
	
	public static String MSG = "msg";				//返回数据的，提示语 key
	public static String DATA = "data";				//返回数据的，数据 key
	public static String CODE = "code";				//返回数据的，提示编码key
	public static String SUCCESS = "200";			//返回数据的，请求成功的 code
	public static String ERROR = "301";				//返回数据的，请求失败的 code
	
	
	static{
		//读取配置文件
		String rootPath=Config.class.getResource("/").getFile().toString();  //获取当前项目 路径
		try {
			//读取XML文件,获得document对象
			SAXReader reader = new SAXReader();      			
		    Document document = reader.read(new File(rootPath+"/AppConfig.xml"));
		    Element root = document.getRootElement();		//获取文档的根节点. 
		    //读取数据库配置
		    for (Iterator i =root.elementIterator(); i.hasNext();) {
		    	Element el =(Element) i.next();
		    	switch (el.getName()) {
				case "db-host":	
					DB_HOST = el.getStringValue();
					break;
				case "db-name":
					DB_NAME = el.getStringValue();
					break;
				case "db-user":
					DB_USERNAME = el.getStringValue();
					break;
				case "db-password":
					DB_PASSWORD = el.getStringValue();
					break;
				case "db-createTable":
					if("true".equals(el.getStringValue()))AutoCreateTable=true;
					else AutoCreateTable = false;
					break;
				case "db-entity":
					ENTITY_PATH = el.getStringValue();
					break;
				//读取 控制器 配置
				case "controller-path":	
					CONTROLLER_PATH = el.getStringValue();
					break;
				//读取 系统 配置
				case "app-debug":
					if("true".equals(el.getStringValue()))DEBUG=true;
					else DEBUG = false;
					break;
				//读取 路由 模式
				case "app-url-route":	
					URLROUTE = Integer.parseInt(el.getStringValue());
					break;
				//读取 其它 配置
				case "other-des_key":	
					DES_KEY = el.getStringValue();
					break;
					//读取 HTTP 返回json  配置
				case "http-msg":	
					MSG = el.getStringValue();
					break;
				case "http-data":	
					DATA = el.getStringValue();
					break;
				case "http-code":	
					CODE = el.getStringValue();
					break;
				case "http-code-success":	
					SUCCESS = el.getStringValue();
					break;
				case "http-code-error":	
					ERROR = el.getStringValue();
					break;
				}
		    }
		} catch (Exception e) {
			e.printStackTrace();
			ELog.i("读取XML配置文件出错。请检查是否存在 AppConfig.xml");
		}
	}
	
}
